﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WF_QLThuVien.PresentationLayer;
using WF_QLThuVien.Utilities;
using WF_QLThuVien.Entities.QuyDinh;
using WF_QLThuVien.BusinessLayer.QuyDinh;
using WF_QLThuVien.BusinessLayer.DauSach;
using WF_QLThuVien.Entities.Sach;
using WF_QLThuVien.BusinessLayer;
using WF_QLThuVien.Entities;
using System.Collections;
using WF_QLThuVien.Entities.DauSach;
using WF_QLThuVien.BusinessLayer.PhieuMuon;
using WF_QLThuVien.Entities.PhieuMuon;

namespace WF_QLThuVien
{
    public partial class FormQuanLy : Form
    {
        #region: Vùng delegate với form Main
        public delegate void DongForm(bool flag);
        public event DongForm thoat;
        #endregion

        #region: QuyDinh
        CQuyDinh QuyDinh = new CQuyDinh();
        CBLL_QuyDinh bllQuyDinh = new CBLL_QuyDinh();

        CBLL_Login bllLogin = new CBLL_Login();
        #endregion

        #region: DauSach
        CDauSach DauSach = null;
        CBLL_DauSach bllDauSach = new CBLL_DauSach();
        int indexDauSach=0;
        List<CDauSach> dataDauSach;

        object CellClickSender;
        DataGridViewCellEventArgs CellClickE;

        FormTimKiemSach ftks = null;
        #endregion

        #region: Đọc Giả. PANDA
        CDocGia GDocGia = new CDocGia();
        CDocGiaBLL GDocGiaBLL = new CDocGiaBLL();
        ArrayList dataDocGia = new ArrayList();
        string maDG = "";
        string maSV = "";
        string soDT = "";

        object objectSender;
        EventArgs EventArgsE;

        FormTimKiemDocGia ftkdg = null;
        #endregion

        #region: Phiếu Mượn. PANDA
        CPhieuMuonBLL GPhieuMuonBLL = new CPhieuMuonBLL();
        CPhieuMuon GPhieuMuon;
        ArrayList dataPhieuMuon = new ArrayList();
        CCTPhieuMuonBLL GCTPhieuMuonBLL = new CCTPhieuMuonBLL();
        #endregion

        #region: Sách. PANDA
        CBLL_DauSach GDauSachBLL = new CBLL_DauSach();
        #endregion

        public FormQuanLy()
        {
            InitializeComponent();
            thoat += new DongForm(FormQuanLy_thoat);
        }

        void FormQuanLy_thoat(bool flag)
        {
            
        }

        private void btnTimDauSach_Click(object sender, EventArgs e)
        {
            if (ftks == null)
            {
                dsErr.Clear();
                ftks = new FormTimKiemSach();
                CVariable.NHA_XUAT_BAN = bllDauSach.LoadNhaXB();
                CVariable.NGON_NGU = bllDauSach.LoadNgonNgu();
                CVariable.NAM_XUAT_BAN = bllDauSach.LoadNamXB();
                CVariable.THE_LOAI = bllDauSach.LoadTheLoai();
                CVariable.TAC_GIA = bllDauSach.LoadTacGia();

                ftks.sdt += new FormTimKiemSach.SentData(ftks_sdt);
                ftks.dongForm += new FormTimKiemSach.CloseF(ftks_dongForm);
                ftks.Show();
            }
            else
            {
                ftks.Activate();
            }

        }

        void ftks_dongForm(bool flag)
        {
            if (flag)
            {
                ftks = null;
            }
        }

        void ftks_sdt(List<CDauSach> lstDauSach, bool rdbSach, string SachID)
        {
            dsdgvDsDauSach.DataSource = lstDauSach;
        }

        #region: PANDA. Region tìm kiếm
        private void btnTimDocGia_Click(object sender, EventArgs e)
        {
            dgErr.Clear();
            FormTimKiemDocGia ftkdg = new FormTimKiemDocGia();
            ftkdg.TKCDocGiaBLL = GDocGiaBLL;
            ftkdg.AddressUpdated += new FormTimKiemDocGia.AddressUpdateHandler(AddressForm_ButtonClicked); //Lấy giá trị truyền từ formTimKiem
            ftkdg.UpdateDate_Click += new FormTimKiemDocGia.UpdateData(FormTimKiemDocGia_UpdateData_Click); //Gọi sự kiến delegate click để show giá trị tìm được
            ftkdg.ShowDialog();
        }

        private void AddressForm_ButtonClicked(object sender, AddressUpdateEventArgs e)
        {
            //Nhận các giá trị được delegate từ formTimKiem
            maDG = e.MaDocGia;
            maSV = e.MaSinhVien;
            soDT = e.SoDT;
        }

        void FormTimKiemDocGia_UpdateData_Click()
        {
            //Viết hàm load lên GridView cho phần tìm kiếm đọc giả
            if (maDG != "")
            {
                loadMaDocGiaResult();
            }
            else if (maSV != "")
            {
                loadMaSinhVienResult();
            }
            else if (soDT != "")
            {
                loadSoDTResult();
            }
        }


        //Hàm load mã đọc giả khi tìm
        private void loadMaDocGiaResult()
        {
            //Xây dựng hàm loadOnlyMaDocGia trong DAL. Kèm theo BLL gọi hàm.
            dataDocGia = GDocGiaBLL.loadOnlyDocGia(maDG);
            dgdgvDocGia.DataSource = dataDocGia;
        }

        //Hàm load mã sinh viên khi tìm
        private void loadMaSinhVienResult()
        {
            dataDocGia = GDocGiaBLL.loadOnlySinhVien(maSV);
            dgdgvDocGia.DataSource = dataDocGia;
        }

        //Hàm load số DT sinh viên
        private void loadSoDTResult()
        {
            dataDocGia = GDocGiaBLL.loadOnlySoDTSV(soDT);
            dgdgvDocGia.DataSource = dataDocGia;
        }
        #endregion

        private void mtsbtnTimDocGia_Click(object sender, EventArgs e)
        {
            FormTimKiemPhieuMuon ftkpm = new FormTimKiemPhieuMuon();
            ftkpm.UpdateTimPM_Click += new FormTimKiemPhieuMuon.UpdateTimPM(ftkpm_UpdateTimPM_Click);
            ftkpm.ShowDialog();
        }

        void ftkpm_UpdateTimPM_Click(ArrayList arrPhieuMuon, string trangThai)
        {
            mtslstChiTietMuonSach.Items.Clear();
            mtsdgvDsPhieuMuon.DataSource = arrPhieuMuon;
        }

        #region: PANDA
        private void btnLapPhieuMuon_Click(object sender, EventArgs e)
        {
            FormLapPhieuMuon flpm = new FormLapPhieuMuon();
            flpm.UpdateDataPM_Click += new FormLapPhieuMuon.UpdateDataPM(FormLapPhieuMuon_UpdateDataPM_Click);
            flpm.ShowDialog();
        }

        void FormLapPhieuMuon_UpdateDataPM_Click()
        {
            LoadPhieuMuon();
            LoadDauSach();
        }
        #endregion

        #region: PANDA
        private void btnGiaHan_Click(object sender, EventArgs e)
        {
            Form3TacVu fgh = new Form3TacVu("giahan", "");
            fgh.Text = "Tác vụ Gia Hạn Sách";
            fgh.UpdateData_Click += new Form3TacVu.UpdateClickPM(Form3TacVu_UpdateDateClick);
            fgh.ShowDialog();
        }

        void Form3TacVu_UpdateDateClick()
        {
            LoadPhieuMuon();
            LoadDauSach();
        }

        private void btnTraSach_Click(object sender, EventArgs e)
        {
            Form3TacVu fts = new Form3TacVu("", "trasach");
            fts.Text = "Tác vụ Trả Sách";
            fts.UpdateData_Click += new Form3TacVu.UpdateClickPM(Form3TacVu_UpdateDateClick);
            fts.ShowDialog();
        }

        private void btnMatSach_Click(object sender, EventArgs e)
        {
            dataPhieuMuon = GPhieuMuonBLL.loadPhieuMuon();
            FormBaoMatSach fms = new FormBaoMatSach(dataPhieuMuon);
            fms.UpdateData_Click += new FormBaoMatSach.UpdateClickBaoMatSach(fms_UpdateData_Click);
            fms.ShowDialog();
        }

        void fms_UpdateData_Click()
        {
            mtslstChiTietMuonSach.Items.Clear();
            LoadPhieuMuon();
        }

        #endregion

        private void tabQuanLy_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (tabQuanLy.SelectedIndex)
            {
                case 5:
                    //MessageBox.Show("Tro giup");

                    break;
                case 4:
                    //MessageBox.Show("Thong ke");
                    
                    break;
                case 3:
                    //MessageBox.Show("Cau hinh");                    
                    
                    break;
                case 2:
                    //MessageBox.Show("Muon tra sach");                   
                    
                    break;
                case 1:
                    //MessageBox.Show("Dau sach");                    
                    dsbtnRefreshDS_Click(sender, e);
                    break;
                case 0:
                    //MessageBox.Show("Doc gia");                    
                    dgbtnRefreshDG_Click(sender, e);
                    
                    break;
            }
        }

        private void FormQuanLy_FormClosed(object sender, FormClosedEventArgs e)
        {

        }

        private void FormQuanLy_Load(object sender, EventArgs e)
        {
            

            #region: control trong tab Đọc Giả
            LoadDocGia();

            dgtxtMaDocGia.Text = CPhatSinhMa.MaAuto(DateTime.Now, "D");

            dgtxtMaSV.Focus();           

            dgbtnRefreshDG.Enabled = true;
            dgbtnSuaDocGia.Enabled = false;
            dgbtnThemDocGia.Enabled = false;
            dgbtnTimDocGia.Enabled = true;
            dgbtnXoaDocGia.Enabled = false;

            CPhatSinhMa.ChuoiComboBox(CVariable.TRANG_THAI_DOC_GIA, dgcbbTinhTrang);
            dgcbbTinhTrang.DropDownStyle = ComboBoxStyle.DropDownList;
            dgcbbTinhTrang.SelectedIndex = 0;

            CPhatSinhMa.SoComboBox(CVariable.NIEN_KHOA_START, DateTime.Now.Year, dgcbbNKStart);
            dgcbbNKStart.DropDownStyle = ComboBoxStyle.DropDownList;
            dgcbbNKStart.SelectedIndex = 0;

            CPhatSinhMa.SoComboBox(CVariable.NIEN_KHOA_START, DateTime.Now.Year + CVariable.SO_NAM_HOC, dgcbbNKEnd);
            dgcbbNKEnd.DropDownStyle = ComboBoxStyle.DropDownList;
            dgcbbNKEnd.SelectedIndex = 2;

            CPhatSinhMa.ChuoiComboBox(CVariable.KHOA, dgcbbKhoa);
            dgcbbKhoa.DropDownStyle = ComboBoxStyle.DropDownList;
            dgcbbKhoa.SelectedIndex = 0;

            #endregion

            #region: control trong tab Đầu Sách

            dsbtnXoaDauSach.Enabled = DauSach == null ? false : true;
            dsbtnSuaDauSach.Enabled = DauSach == null ? false : true;
            dsbtnThemDauSach.Enabled = false;

            LoadDauSach();
            dstxtMaDauSach.Text = CPhatSinhMa.MaAuto(DateTime.Now, "DS");
            CPhatSinhMa.ChuoiComboBox(CVariable.TRANG_THAI_SACH_MOI_NHAP, dscbbTrangThai);
            dscbbTrangThai.DropDownStyle = ComboBoxStyle.DropDownList;
            dscbbTrangThai.SelectedIndex = 0;

            CPhatSinhMa.SoComboBox(CVariable.NAM_XUAT_BAN_TU, DateTime.Now.Year, dscbbNamXB);
            dscbbNamXB.SelectedIndex = dscbbNamXB.Items.Count - 1;
            dscbbNamXB.DropDownStyle = ComboBoxStyle.DropDownList;

            CPhatSinhMa.ChuoiComboBox(CVariable.QUOC_GIA, dscbbNgonNgu);
            dscbbNgonNgu.SelectedIndex = 0;
            dscbbNgonNgu.DropDownStyle = ComboBoxStyle.DropDownList;

            
            #endregion

            #region: control trong tab Phiếu Mượn Trả
            LoadPhieuMuon();
            #endregion

            #region: control trong tab Cấu Hình
            

            QuyDinh = bllQuyDinh.GetQuyDinh();

            chtxtKyQuyToiThieu.Text = QuyDinh.TienKyQuyToiThieu.ToString(); ;
            chtxtNgayMuonTD.Text = QuyDinh.SoNgayMuonToiDa.ToString();
            chtxtNgayTrenMotLanGH.Text = QuyDinh.SoNgayMotLanGiaHan.ToString();
            chtxtPhiLamThe.Text = QuyDinh.PhiLamThe.ToString();
            chtxtSachMuonTD.Text = QuyDinh.SoSachMuonToiDa.ToString();
            chtxtSoLanGH.Text = QuyDinh.SoLanGiaHan.ToString();
            chtxtTPMatSach.Text = QuyDinh.TienPhatMatSach.ToString();            
            chtxtTPtTreHan.Text = QuyDinh.TienPhatTreHan.ToString();
            #endregion

            #region: control trong tab Trợ Giúp
            #endregion

        }

        #region: PANDA. Báo Hỏng Sách
        private void mtsbtnBaoHong_Click(object sender, EventArgs e)
        {
            FormBaoHong fbh = new FormBaoHong();
            fbh.UpdateDataPM_Click += new FormBaoHong.UpdateDataPM(FormBaoHong_UpdateDataPM);
            fbh.ShowDialog();
        }

        void FormBaoHong_UpdateDataPM()
        {
            LoadPhieuMuon();
            LoadDauSach();
        }

        #endregion

        private void dstxtTenDauSach_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtTenDauSach, "Không được bỏ trống", dsErr);
            if (dstxtTenDauSach.Text.Length > 0)
            {
                dsbtnThemDauSach.Enabled = true;
            }
            else
            {
                dsbtnThemDauSach.Enabled = false;
            }
        }

        private void dsdgvDsDauSach_Click(object sender, EventArgs e)
        {
            //dsbtnSuaDauSach.Enabled = true;
            //dsbtnXoaDauSach.Enabled = true;
        }

        private void dgtxtMaSV_TextChanged(object sender, EventArgs e)
        {
            if (!CKiemTra.IsNull(dgtxtMaSV, "Nhập mã sinh viên", dgErr))
            {
                dgbtnThemDocGia.Enabled = true;
            }
            else
            {
                dgbtnThemDocGia.Enabled = false;
            }
        }

        private void dgdgvDocGia_Click(object sender, EventArgs e)
        {
            dgbtnXoaDocGia.Enabled = true;
            dgbtnSuaDocGia.Enabled = true;
        }

        private void FormQuanLy_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult kq = MessageBox.Show("Quay lại giao diện Tìm Kiếm?\n"
                + "Yes: Quay về giao diện Tìm Kiếm.\n"
                + "No: Thoát luôn ứng dụng.\n"
                + "Cancel: Hủy thao tác.\n"
                , "Cảnh báo!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
            if (kq == DialogResult.No)
            {                
                thoat(true);
                this.Dispose();
            }
            else if (kq == DialogResult.Yes)
            {                
                thoat(false);
                this.Dispose();
            }
            else
            {
                e.Cancel = true;
            }
        }

        private void chbtnLuu_Click(object sender, EventArgs e)
        {
            CQuyDinh qd = new CQuyDinh();
            qd.TienPhatTreHan = double.Parse(chtxtTPtTreHan.Text);            
            qd.TienPhatMatSach = int.Parse(chtxtTPMatSach.Text);
            qd.TienKyQuyToiThieu = double.Parse(chtxtKyQuyToiThieu.Text);
            qd.SoSachMuonToiDa = int.Parse(chtxtSachMuonTD.Text);
            qd.SoNgayMuonToiDa = int.Parse(chtxtNgayMuonTD.Text);
            qd.SoNgayMotLanGiaHan = int.Parse(chtxtNgayTrenMotLanGH.Text);
            qd.SoLanGiaHan = int.Parse(chtxtSoLanGH.Text);
            qd.PhiLamThe = double.Parse(chtxtPhiLamThe.Text);

            if (bllQuyDinh.Update(qd))
                MessageBox.Show("Lưu thành công");
            else
                MessageBox.Show("Lưu bị lỗi");
        }

        private void chtxtSachMuonTD_TextChanged(object sender, EventArgs e)
        {

        }

        private void dsbtnThemDauSach_Click(object sender, EventArgs e)
        {
            try
            {                
                if (ControlDauSach())
                {
                    CDauSach ds = GetInfoTabDauSach();
                    if (bllDauSach.ThemDauSach(ds))
                    {
                        dsbtnRefreshDS_Click(sender, e);
                        dsErr.Clear();
                    }                    
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private CDauSach GetInfoTabDauSach()
        {
            
                CDauSach ds = new CDauSach();
                ds.MaDauSach = dstxtMaDauSach.Text;
                ds.GiaTien = double.Parse(dstxtGiaTien.Text);
                ds.Isbn = CKiemTra.IsNull(dstxtIsbn, "", dsErr) ? "" : dstxtIsbn.Text;
                ds.NamXB = int.Parse(dscbbNamXB.SelectedItem.ToString());
                ds.NgayNhap = dsdtpNgayNhap.Value;
                ds.NgonNgu = dscbbNgonNgu.SelectedItem.ToString();
                ds.NhaXB = CXuLiChuoi.VietHoaDauMoiChu(dstxtNhaXB.Text);
                ds.SoLuong = int.Parse(dstxtSoLuong.Text);
                ds.TacGia = CXuLiChuoi.VietHoaDauMoiChu(dstxtTacGia.Text);
                ds.TenDauSach = CXuLiChuoi.VietHoaDauMoiChu(dstxtTenDauSach.Text);
                ds.TheLoai = CXuLiChuoi.VietHoaDauMoiChu(dstxtTheLoai.Text);
                ds.TrangThai = dscbbTrangThai.SelectedItem.ToString();

                return ds;
            
        }

        private void LoadDauSach()
        {
            dataDauSach = bllDauSach.LoadData();
            dsdgvDsDauSach.DataSource = dataDauSach;
        }

        private void dsbtnRefreshDS_Click(object sender, EventArgs e)
        {
            LoadDauSach();            
            ClearControlDauSach();
            dstxtMaDauSach.Text = CPhatSinhMa.MaAuto(DateTime.Now, "DS");
            dsErr.Clear();
            dstxtTenDauSach.Focus();
        }

        private void ClearControlDauSach()
        {

            dstxtGiaTien.Text = "";
            dstxtIsbn.Text = "";
            dstxtNhaXB.Text = "";
            dstxtSoLuong.Text = "";
            dstxtTacGia.Text = "";
            dstxtTenDauSach.Text = "";
            dstxtTheLoai.Text = "";

            dsbtnXoaDauSach.Enabled = false;
            dsbtnSuaDauSach.Enabled = false;
        }

        private void dsbtnXoaDauSach_Click(object sender, EventArgs e)
        {
            try
            {
                bllDauSach.XoaDauSach(DauSach);
                dsbtnRefreshDS_Click(sender, e);
                dsdgvSach.DataSource = null;
                dsErr.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void tabSach_Click(object sender, EventArgs e)
        {
            
        }

        private void dsdgvDsDauSach_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            CellClickSender = sender;
            CellClickE = e;

            indexDauSach = dsdgvDsDauSach.CurrentRow.Index;
            GetDauSachFromDatagridview();

            dstxtMaDauSach.Text = DauSach.MaDauSach;
            dstxtTenDauSach.Text = DauSach.TenDauSach;
            dsdtpNgayNhap.Value = DauSach.NgayNhap;
            dstxtSoLuong.Text = DauSach.SoLuong.ToString();
            dstxtGiaTien.Text = DauSach.GiaTien.ToString();
            dstxtIsbn.Text = DauSach.Isbn;
            dscbbNgonNgu.Text = DauSach.NgonNgu;
            dscbbNamXB.Text = DauSach.NamXB.ToString();
            dstxtNhaXB.Text = DauSach.NhaXB;
            dstxtTheLoai.Text = DauSach.TheLoai;
            dstxtTacGia.Text = DauSach.TacGia;
            dscbbTrangThai.Text = DauSach.TrangThai;

            dsbtnSuaDauSach.Enabled = true;
            dsbtnXoaDauSach.Enabled = true;
            dsbtnThemDauSach.Enabled = false;

            dsdgvSach.DataSource = DauSach.DsSach;


            
        }

        private void GetDauSachFromDatagridview()
        {
            DauSach = new CDauSach();
            DataGridViewRow r = dsdgvDsDauSach.CurrentRow;
            DauSach.MaDauSach = r.Cells["MaDauSach"].Value.ToString();
            DauSach.NamXB = int.Parse(r.Cells["NamXB"].Value.ToString());
            DauSach.GiaTien = double.Parse(r.Cells["GiaTien"].Value.ToString());
            DauSach.Isbn = r.Cells["Isbn"].Value.ToString();
            DauSach.NgayNhap = DateTime.Parse(r.Cells["NgayNhap"].Value.ToString());
            DauSach.NgonNgu = r.Cells["NgonNgu"].Value.ToString();
            DauSach.NhaXB = r.Cells["NhaXB"].Value.ToString();
            DauSach.SoLuong = int.Parse(r.Cells["SoLuong"].Value.ToString());
            DauSach.TacGia = r.Cells["TacGia"].Value.ToString();
            DauSach.TenDauSach = r.Cells["TenDauSach"].Value.ToString();
            DauSach.TheLoai = r.Cells["TheLoai"].Value.ToString();
            DauSach.TrangThai = r.Cells["TrangThai"].Value.ToString();
            DauSach.DsSach = bllDauSach.LoadSach(DauSach.MaDauSach);
        }

        private void dsbtnSuaDauSach_Click(object sender, EventArgs e)
        {            
                try
                {
                    if (ControlDauSach())
                    {
                        DauSach = GetInfoTabDauSach();
                        if (bllDauSach.CapNhatDauSach(DauSach))
                        {
                            dsbtnRefreshDS_Click(sender, e);
                            dsdgvDsDauSach_CellClick(CellClickSender, CellClickE);
                            dsErr.Clear();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            
        }

        //PANDA --
        private void dgbtnThemDocGia_Click(object sender, EventArgs e)
        {
            try
            {
                Control[] arr = { dgtxtHoTen, dgtxtMaSV, dgtxtHoTen, dgtxtLop, dgtxtSoDT };
                CKiemTra.StartWith0(dgtxtSoDT, "Start with 0", dgErr);
                if (KTControl(arr, dgErr))
                {
                    //GDocGia = new CDocGia();
                    GetInfoTabDocGia();
                    GDocGiaBLL = new CDocGiaBLL();
                    if (GDocGiaBLL.themDocGiaBLL(GDocGia))
                    {
                        LoadDocGia(); //Load len GridView
                        ClearControlDocGia();
                        dgErr.Clear();
                    }

                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void GetInfoTabDocGia()
        {
            GDocGia.DocGiaID = dgtxtMaDocGia.Text;
            GDocGia.TenDocGia = CXuLiChuoi.VietHoaDauMoiChu(dgtxtHoTen.Text);
            GDocGia.MaSoSV = dgtxtMaSV.Text.ToUpper();
            GDocGia.NgaySinh = dgdtpNgaySinh.Value;
            GDocGia.GioiTinh = dgrdbNam.Checked;
            GDocGia.Lop = dgtxtLop.Text.ToUpper();
            GDocGia.SoDT = dgtxtSoDT.Text;
            GDocGia.NgayLapThe = DateTime.Now;
            GDocGia.TinhTrang = dgcbbTinhTrang.Text;
            GDocGia.KyQuy = dgtxtKyQuy.Text.Length <= 0 ? 0 : double.Parse(dgtxtKyQuy.Text);
            GDocGia.NienKhoa = dgcbbNKStart.Text + "-" + dgcbbNKEnd.Text;
            GDocGia.Khoa = CXuLiChuoi.VietHoaDauMoiChu(dgcbbKhoa.Text);
        }

        private bool SetLoi(Control ctrl, string thongBao)
        {
            if (ctrl.Text.Length == 0)
            {
                dgErr.SetError(ctrl, thongBao);
                return false;
            }
            else
            {
                dgErr.SetError(ctrl, "");
                return true;
            }
        }

        /*
        public bool KTData()
        {
            bool mssv = SetLoi(dgtxtMaSV, "Khong null!");
            bool tenDocGia = SetLoi(dgtxtHoTen, "Khong null!");
            //bool ngaySinh = SetLoi(dgdtpNgaySinh, "Chon Ngay Sinh");
            bool lop = SetLoi(dgtxtLop, "Khong null!");
            bool soDT = SetLoi(dgtxtSoDT, "Khong null!");
            if (mssv && tenDocGia && lop && soDT)
            {
                return true;
            }
            return false;
        }
        */
        #region: PANDA. Phiếu Mượn
        private void LoadPhieuMuon()
        {
            dataPhieuMuon = GPhieuMuonBLL.loadPhieuMuon();
            mtsdgvDsPhieuMuon.DataSource = dataPhieuMuon;
        }

        #endregion

        #region: PANDA
        private void LoadDocGia()
        {
            GDocGiaBLL = new CDocGiaBLL();
            dataDocGia = GDocGiaBLL.loadDocGiaTB();
            dgdgvDocGia.DataSource = dataDocGia;
        }

        private void dgdgvDocGia_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (dgdgvDocGia.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
                {
                    string maDocGia = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["DocGiaID"].Value.ToString();
                    //string maDocGia = dgdgvDocGia.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                    string tenDocGia = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["TenDocGia"].Value.ToString();
                    string maSoSV = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["MaSoSV"].Value.ToString();
                    DateTime ngaySinh = Convert.ToDateTime(dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["NgaySinh"].Value);
                    bool gioiTinh = (bool)dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["GioiTinh"].Value;
                    string soDT = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["SoDT"].Value.ToString();
                    DateTime ngayLapThe = (DateTime)dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["NgayLapThe"].Value;
                    string tinhTrang = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["TinhTrang"].Value.ToString();
                    double kyQuy = (double)dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["KyQuy"].Value;
                    string nKStart = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["NienKhoa"].Value.ToString().Substring(0, 4).ToString();
                    string nKEnd = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["NienKhoa"].Value.ToString().Substring(5).ToString();
                    string lop = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["Lop"].Value.ToString();
                    string khoa = dgdgvDocGia.Rows[dgdgvDocGia.CurrentRow.Index].Cells["Khoa"].Value.ToString();

                    #region: Đọc Giả. Khởi tạo đọc giả cho hàm xóa
                    GDocGia.DocGiaID = maDocGia;
                    GDocGia.TenDocGia = tenDocGia;
                    GDocGia.MaSoSV = maSoSV;
                    GDocGia.NgaySinh = ngaySinh;
                    GDocGia.GioiTinh = gioiTinh;
                    GDocGia.SoDT = soDT;
                    GDocGia.NgayLapThe = ngayLapThe;
                    GDocGia.TinhTrang = tinhTrang;
                    GDocGia.KyQuy = kyQuy;
                    GDocGia.NienKhoa = nKStart + "-" + nKEnd;
                    GDocGia.Lop = lop;
                    GDocGia.Khoa = khoa;
                    #endregion

                    #region: Hiển thị lên giao diện
                    dgtxtMaDocGia.Text = maDocGia;
                    dgtxtHoTen.Text = tenDocGia;
                    dgtxtMaSV.Text = maSoSV;
                    dgdtpNgaySinh.Value = ngaySinh;
                    if (gioiTinh == true)
                    {
                        dgrdbNam.Checked = true;
                    }
                    else
                    {
                        dgrdbNu.Checked = true;
                    }
                    dgtxtSoDT.Text = soDT;
                    dgdtpNgayLapThe.Value = ngayLapThe;
                    dgcbbTinhTrang.Text = tinhTrang;
                    dgtxtKyQuy.Text = kyQuy.ToString();
                    dgcbbNKStart.Text = nKStart;
                    dgcbbNKEnd.Text = nKEnd;
                    dgtxtLop.Text = lop;
                    dgcbbKhoa.Text = khoa;
                    #endregion
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }

        private void dgbtnRefreshDG_Click(object sender, EventArgs e)
        {
            ClearControlDocGia();
            LoadDocGia();
            dgErr.Clear();
        }

        private void clearGUI()
        {
            dgtxtMaDocGia.Text = "";
            dgtxtHoTen.Text = "";
            dgtxtMaSV.Text = "";
            dgdtpNgaySinh.Value = DateTime.Now;
            dgtxtSoDT.Text = "";
            dgdtpNgayLapThe.Value = DateTime.Now;
            dgcbbTinhTrang.Text = "";
            dgtxtKyQuy.Text = "";
            dgcbbNKStart.SelectedIndex = 0;
            dgcbbNKEnd.SelectedIndex = 0;
            dgtxtLop.Text = "";
            dgcbbKhoa.Text = "";
        }

        private void dgbtnXoaDocGia_Click(object sender, EventArgs e)
        {
            string maDocGia = dgtxtMaDocGia.Text;
            if (GDocGiaBLL.xoaDocGiaBLL2(maDocGia))
            {
                LoadDocGia();
                ClearControlDocGia();
                dgErr.Clear();
            }

        }

        private void dgbtnSuaDocGia_Click(object sender, EventArgs e)
        {
            try
            {
                GetInfoTabDocGia();
                if (GDocGiaBLL.suaDocGiaBLL(GDocGia))
                {
                    LoadDocGia();
                    dgErr.Clear();
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        #endregion

        #region: Phiếu Mượn. PANDA
        private void mtsdgvDsPhieuMuon_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (mtsdgvDsPhieuMuon.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
                {
                    string maPhieuMuon = mtsdgvDsPhieuMuon.Rows[mtsdgvDsPhieuMuon.CurrentRow.Index].Cells["PhieuMuonID"].Value.ToString();
                    string docGiaID = mtsdgvDsPhieuMuon.Rows[mtsdgvDsPhieuMuon.CurrentRow.Index].Cells["DocGiaID"].Value.ToString();
                    DateTime ngayLap = Convert.ToDateTime(mtsdgvDsPhieuMuon.Rows[mtsdgvDsPhieuMuon.CurrentRow.Index].Cells["NgayLap"].Value);

                    #region: Hiển thị ListView: Mã Sách, Tên Sách, Trạng Thái(Tình Trạng), Hạn Trả, Ngày Trả, Ghi Chú, Tiền Phạt
                    //Hiển thị tất cả chi tiết phiếu mượn lên ListView bên dưới
                    mtslstChiTietMuonSach.Items.Clear();
                    foreach (CPhieuMuon pm in dataPhieuMuon)
                    {
                        if (pm.PhieuMuonID.ToString().Equals(maPhieuMuon))
                        {
                            //MessageBox.Show(pm.CtPhieuMuon.Count.ToString());
                            foreach (CCTPhieuMuon ctpm in pm.CtPhieuMuon)
                            {
                                int i = Convert.ToInt32(ctpm.SoLanGiaHan.ToString());
                                #region: Hạn Trả Hiển Thị Trên ListView
                                DateTime hanTra = DateTime.Now;
                                //MessageBox.Show(i.ToString());
                                if (i == 0)
                                {
                                    hanTra = hanTra.AddDays(7);
                                }
                                else if (i != 0)
                                {
                                    if (i == 1)
                                    {
                                        hanTra = hanTra.AddDays(14);
                                    }
                                    else
                                    {
                                        hanTra = hanTra.AddDays(i * 7 + 7);
                                    }
                                }
                                #endregion

                                #region: Ngày Trả: Nếu Chưa Trả Thì Bằng Hạn Trả, Nếu Trạng Thái Đã Trả Thì Lấy Ngày Trả Từ CTPM
                                DateTime ngayTra = new DateTime();
                                if (ctpm.TrangThai.ToString().Equals(@"Dang muon")) //Chua Tra
                                {
                                    ngayTra = hanTra;
                                }
                                else
                                {
                                    ngayTra = ctpm.NgayTra;
                                }
                                #endregion

                                #region: Tiền Phạt
                                double tienPhat = 0;
                                if (ctpm.TrangThai.ToString().Equals(@"Mat"))
                                {
                                    tienPhat = GDauSachBLL.GiaTienMatSach(ctpm.Sach.SachID.ToString());
                                }
                                else
                                {
                                    tienPhat = 0;
                                }
                                #endregion

                                #region: Hiển Thị
                                string tenSach = GDauSachBLL.timTenSachByMaSach(ctpm.Sach.SachID.ToString());
                                string[] row = { ctpm.Sach.SachID.ToString(), tenSach, ctpm.TrangThai, hanTra.ToShortDateString(), ngayTra.ToShortDateString(), ctpm.Sach.GhiChu, tienPhat.ToString(), ctpm.SoLanGiaHan.ToString() };
                                ListViewItem lvi = new ListViewItem(row);
                                mtslstChiTietMuonSach.Items.Add(lvi);
                                #endregion
                            }
                        }
                    }
                    #endregion
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
        #endregion

        private void dstxtTenDauSach_Validated(object sender, EventArgs e)
        {
            //CKiemTra.IsNull(dstxtTenDauSach, "Không được bỏ trống tên đầu sách!", dsErr);
        }

        private void dstxtSoLuong_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtSoLuong, "Không được bỏ trống số lượng", dsErr);            
        }

        private void dstxtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            CKiemTra.IsNumber(sender, e, dstxtSoLuong, "Phải nhập số", dsErr);
        }

        private void dstxtNhaXB_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtNhaXB, "Không được bỏ trống Nhà xuất bản", dsErr);
        }

        private void dstxtTheLoai_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtTheLoai, "Không được bỏ trống Thể loại", dsErr);
        }

        private void dstxtTacGia_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtTacGia, "Không được bỏ trống Tác giả", dsErr);
        }

        private void dstxtGiaTien_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtGiaTien, "Không được bỏ trống giá tiền", dsErr);
        }

        private void dstxtGiaTien_KeyPress(object sender, KeyPressEventArgs e)
        {
            CKiemTra.IsNumber(sender, e, dstxtGiaTien, "Phải nhập số", dsErr);
        }

        private bool KTControl(Control[] arr, ErrorProvider err)
        {
            foreach (Control a in arr)
            {
                if (CKiemTra.IsNull(a, "Không được bỏ trống ô này", err))
                {
                    break;
                }
            }
            return true;
        }

        private bool ControlDauSach()
        {
            Control[] arr = { dstxtTenDauSach, dstxtSoLuong, dstxtGiaTien, dstxtNhaXB, dstxtTheLoai, dstxtTacGia };
            return KTControl(arr, dsErr);
        }

        private void dgtxtMaSV_Validated(object sender, EventArgs e)
        {
            if (GDocGiaBLL.KtMaSinhVien(dgtxtMaSV.Text))
            {
                MessageBox.Show("Đã tồn tại mã sinh viên này!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                dgtxtMaSV.Focus();
                dgtxtMaSV.SelectAll();
            }
        }

        private void dstxtTenDauSach_Validating(object sender, CancelEventArgs e)
        {
            //CKiemTra.IsNull(dstxtTenDauSach, "Nhập tên đầu sách", dsErr);
        }

        private void dgtxtHoTen_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dgtxtHoTen, "Nhập họ tên", dgErr);            
        }

        private void dgtxtLop_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dgtxtLop, "Nhập lớp", dgErr);
        }

        private void dgtxtSoDT_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dgtxtSoDT, "Nhập số điện thoại", dgErr);            
        }

        private void dgtxtSoDT_Validating(object sender, CancelEventArgs e)
        {            
            
        }

        private void dgtxtSoDT_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (CKiemTra.IsNumber(sender, e, dgtxtSoDT, "Chỉ nhập số", dgErr))
            {
                if (dgtxtSoDT.Text.Length == 0 && e.KeyChar != '0')
                {
                    dgErr.SetError(dgtxtSoDT, "Start with 0");
                    e.Handled = true;
                }
                else
                {
                    dgErr.SetError(dgtxtSoDT, "");
                    e.Handled = false;
                }
            }
        }

        private void dgtxtSoDT_Validated(object sender, EventArgs e)
        {
            CKiemTra.LimitChar(dgtxtSoDT, 9, 11, dgErr, "9 đến 11 số");
        }

        private void dgtxtHoTen_KeyPress(object sender, KeyPressEventArgs e)
        {
            CKiemTra.IsChar(sender, e, dgtxtHoTen, "Chỉ nhập chữ", dgErr);
        }
              
        private void dstxtTenDauSach_KeyUp(object sender, KeyEventArgs e)
        {
            CKiemTra.IsNull(dstxtTenDauSach, "Không được bỏ trống", dsErr);
        }

        private void dgtxtMaSV_KeyDown(object sender, KeyEventArgs e)
        {

            if (!CKiemTra.IsNull(dgtxtMaSV, "Nhập mã sinh viên", dgErr) && e.KeyCode == Keys.Enter)
            {
                dgtxtHoTen.Focus();
            }
        }

        private void dgtxtHoTen_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dgtxtHoTen, "Nhập họ tên sinh viên", dgErr) && e.KeyCode == Keys.Enter)
            {
                dgdtpNgaySinh.Focus();
            }
        }

        private void dgdtpNgaySinh_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgrdbNam.Focus();
            }
        }

        private void dgrdbNam_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgtxtLop.Focus();
            }
        }

        private void dgrdbNu_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgtxtLop.Focus();
            }
        }

        private void dgtxtLop_Validated(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dgtxtLop, "Nhập lớp của sinh viên đang học", dgErr);
        }

        private void dgtxtLop_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dgtxtLop, "Nhập lớp của sinh viên đang học", dgErr) && e.KeyCode == Keys.Enter)
            {
                dgtxtSoDT.Focus();
            }
        }

        private void dgtxtSoDT_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dgtxtSoDT, "Nhập số điện thoại", dgErr) && CKiemTra.LimitChar(dgtxtSoDT, 9, 11, dgErr, "9 đến 11 số") && e.KeyCode == Keys.Enter)
            {
                dgcbbTinhTrang.Focus();
            }
        }

        private void dgcbbTinhTrang_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgtxtKyQuy.Focus();
            }
        }

        private void dgtxtKyQuy_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgcbbNKStart.Focus();
            }
        }

        private void dgcbbNKEnd_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgcbbKhoa.Focus();
            }
        }

        private void dgcbbNKStart_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgcbbNKEnd.Focus();
            }
        }

        private void dgcbbKhoa_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dgbtnThemDocGia_Click(sender, e);
            }
        }

        private void dstxtTenDauSach_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtTenDauSach, "Nhập tên đầu sách", dsErr) && e.KeyCode == Keys.Enter)
            {
                dstxtSoLuong.Focus();
            }
        }

        private void dstxtSoLuong_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtSoLuong, "Nhập số lượng sách trong đâu sách này", dsErr) && e.KeyCode == Keys.Enter)
            {
                dstxtGiaTien.Focus();
            }
        }

        private void dstxtGiaTien_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtGiaTien, "Nhập giá tiền 1 cuốn sách", dsErr) && e.KeyCode == Keys.Enter)
            {
                dstxtIsbn.Focus();
            }
        }

        private void dstxtIsbn_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dscbbNgonNgu.Focus();
            }
        }

        private void dscbbNgonNgu_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dscbbNamXB.Focus();
            }
        }

        private void dscbbNamXB_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dstxtNhaXB.Focus();
            }
        }

        private void dstxtNhaXB_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtNhaXB, "Nhập tên nhà xuất bản", dsErr) && e.KeyCode == Keys.Enter)
            {
                dstxtTheLoai.Focus();
            }
        }

        private void dstxtTheLoai_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtTheLoai, "Nhập tên thể loại", dsErr) && e.KeyCode == Keys.Enter)
            {
                dstxtTacGia.Focus();
            }
        }

        private void dstxtTacGia_KeyDown(object sender, KeyEventArgs e)
        {
            if (!CKiemTra.IsNull(dstxtTacGia, "Nhập tên tác giả", dsErr) && e.KeyCode == Keys.Enter)
            {
                dscbbTrangThai.Focus();
            }
        }

        private void dstxtNhaXB_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtNhaXB, "Nhập tên nhà xuất bản", dsErr);
        }

        private void dstxtTheLoai_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtTheLoai, "Nhập thể loại", dsErr);
        }

        private void dstxtTacGia_TextChanged(object sender, EventArgs e)
        {
            CKiemTra.IsNull(dstxtTacGia, "Nhập tên tác giả", dsErr);
        }

        private void dscbbTrangThai_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                dsbtnThemDauSach_Click(sender, e);
            }
        }

        private void chbtnLamLai_Click(object sender, EventArgs e)
        {
            chtxtKyQuyToiThieu.Text = "0";
            chtxtNgayMuonTD.Text = "0";
            chtxtNgayTrenMotLanGH.Text = "0";
            chtxtPhiLamThe.Text = "0";
            chtxtSachMuonTD.Text = "0";
            chtxtSoLanGH.Text = "0";
            chtxtTPMatSach.Text = "0";
            chtxtTPtTreHan.Text = "0";
        }

        private void chbtnLuuAdmin_Click(object sender, EventArgs e)
        {
            CLogin oldli = new CLogin();
            CLogin newli = new CLogin();

            oldli.Id = "123";
            oldli.Pass = txtPassOld.Text;
            oldli.User = txtUserOld.Text;

            newli.Id = "123";
            newli.Pass = txtPassNew.Text;
            newli.User = txtUserNew.Text;

            if (bllLogin.CheckUser(oldli) == 1)
            {
                if (bllLogin.Update(newli))
                {
                    MessageBox.Show("Thay đồi thông tin thành công!");
                }
            }
        }

        private void label27_Click(object sender, EventArgs e)
        {
            mtslstChiTietMuonSach.Items.Clear();
            LoadPhieuMuon();
        }

        private void tabQuanLy_Selected(object sender, TabControlEventArgs e)
        {
            LoadDSSachTreHen();
        }

        private void LoadDSSachTreHen()
        {
            dataDocGia = GDocGiaBLL.loadDocGiaTB();
            foreach (CDocGia dg in dataDocGia)
            {
                foreach (CPhieuMuon pm in dg.DsPhieuMuon)
                {
                    foreach (CCTPhieuMuon ctpm in pm.CtPhieuMuon)
                    {
                        if (pm.NgayLap.AddDays(QuyDinh.SoNgayMuonToiDa) <= DateTime.Now)
                        {
                            string tenSach = GDauSachBLL.timTenSachByMaSach(ctpm.Sach.SachID.ToString());
                            int soNgayTre = DateTime.Now.CompareTo(pm.NgayLap.AddDays(QuyDinh.SoNgayMuonToiDa));
                            double tienPhat = soNgayTre * QuyDinh.TienPhatTreHan;
                            string[] row = { tenSach, dg.TenDocGia.ToString(), soNgayTre.ToString(), tienPhat.ToString() };
                            ListViewItem lvi = new ListViewItem(row);
                            mtslstSachTreHan.Items.Add(lvi);
                        }
                    }
                }
            }
        }

        private void ClearControlDocGia()
        {
            dgtxtMaDocGia.Text = CPhatSinhMa.MaAuto(DateTime.Now, "D");
            dgtxtHoTen.Text = "";
            dgtxtMaSV.Text = "";
            dgdtpNgaySinh.Value = DateTime.Now;
            dgtxtSoDT.Text = "";
            dgdtpNgayLapThe.Value = DateTime.Now;
            dgcbbTinhTrang.Text = "";
            dgtxtKyQuy.Text = "";
            dgcbbNKStart.SelectedIndex = 0;
            dgcbbNKEnd.SelectedIndex = 0;
            dgtxtLop.Text = "";
            dgcbbKhoa.Text = "";
        }
    }
}
